package com.rc.saas.tenant.common.enums;


/**
 * Create by Yang on 2021/8/25
 * <p>
 * =202 结束原因编码定义
 */
public enum LncStopReasonEnum {

    LNC_STOP_REASON_ENUM_1(1, "BMS 中止"),
    LNC_STOP_REASON_ENUM_2(2, "后台中止"),
    LNC_STOP_REASON_ENUM_3(3, "人工设定条件中止"),
    LNC_STOP_REASON_ENUM_4(4, "人工中止"),
    LNC_STOP_REASON_ENUM_5(5, "充电机故障中止"),
    LNC_STOP_REASON_ENUM_6(6, "连接器故障中止"),
    LNC_STOP_REASON_ENUM_7(7, "连接器拔出中止"),
    LNC_STOP_REASON_ENUM_8(8, "强制开关中止"),
    LNC_STOP_REASON_ENUM_9(9, "主接触器异常中止"),
    LNC_STOP_REASON_ENUM_10(10, "辅助接触器异常中止"),
    LNC_STOP_REASON_ENUM_11(11, "电子锁异常中止"),
    LNC_STOP_REASON_ENUM_12(12, "充电电压异常中止"),
    LNC_STOP_REASON_ENUM_13(13, "充电电流异常中止"),
    LNC_STOP_REASON_ENUM_14(14, "充电电流过流中止"),
    LNC_STOP_REASON_ENUM_15(15, "充电电压不匹配中止"),
    LNC_STOP_REASON_ENUM_16(16, "BMS 数据不刷新中止"),
    LNC_STOP_REASON_ENUM_17(17, "电能表通信故障中止"),
    LNC_STOP_REASON_ENUM_18(18, "后台通讯中止"),
    LNC_STOP_REASON_ENUM_19(19, "SOC 满中止"),
    LNC_STOP_REASON_ENUM_20(20, "系统模式类型转换中止"),
    LNC_STOP_REASON_ENUM_21(21, "断电中止"),
    LNC_STOP_REASON_ENUM_22(22, "主动防护电池过温中止"),
    LNC_STOP_REASON_ENUM_23(23, "主动防护电池低温中止"),
    LNC_STOP_REASON_ENUM_24(24, "主动防护电池热失控中止"),
    LNC_STOP_REASON_ENUM_25(25, "主动防护电池过充中止"),
    LNC_STOP_REASON_ENUM_26(26, "BMS 辅助电源异常中止"),
    LNC_STOP_REASON_ENUM_27(27, "BMS 接触器开路故障中止"),
    LNC_STOP_REASON_ENUM_28(28, "主动防护 BMS 数据超范围中止"),
    LNC_STOP_REASON_ENUM_29(29, "PDU 过温中止"),
    LNC_STOP_REASON_ENUM_30(30, "主动防护电池端口电压异常中止"),
    LNC_STOP_REASON_ENUM_31(31, "车辆控制器故障中止"),
    LNC_STOP_REASON_ENUM_51(51, "主动防护电池单体过压中止"),
    LNC_STOP_REASON_ENUM_52(52, "主动防护电池整包过压中止"),
    LNC_STOP_REASON_ENUM_53(53, "电表校验错误中止"),
    LNC_STOP_REASON_ENUM_54(54, "BMS 通讯超时中止"),
    LNC_STOP_REASON_ENUM_55(55, "电量不能提供中止"),
    LNC_STOP_REASON_ENUM_56(56, "风扇故障中止"),
    LNC_STOP_REASON_ENUM_57(57, "急停中止"),
    LNC_STOP_REASON_ENUM_58(58, "充电机绝缘异常中止"),
    LNC_STOP_REASON_ENUM_59(59, "DC 模块不响应"),
    LNC_STOP_REASON_ENUM_60(60, "车辆 BMS 粘连中止"),
    LNC_STOP_REASON_ENUM_61(61, "未获取车辆 VIN 码或车牌号中止"),
    LNC_STOP_REASON_ENUM_62(62, "熔断器故障中止"),
    LNC_STOP_REASON_ENUM_63(63, "模块匹配异常中止"),
    LNC_STOP_REASON_ENUM_64(64, "配置中禁止充电"),
    LNC_STOP_REASON_ENUM_65(65, "充电机预留"),
    LNC_STOP_REASON_ENUM_66(66, "车辆电池达到目标 SOC 中止"),
    LNC_STOP_REASON_ENUM_67(67, "车辆达到总电压目标值中止"),
    LNC_STOP_REASON_ENUM_68(68, "车辆达到单体电压目标值中止"),
    LNC_STOP_REASON_ENUM_69(69, "车辆 bms 绝缘故障中止"),
    LNC_STOP_REASON_ENUM_70(70, "车辆输出连接器过温故障中止"),
    LNC_STOP_REASON_ENUM_71(71, "车辆 BMS 元件、输出连接器过温中止"),
    LNC_STOP_REASON_ENUM_72(72, "车辆充电连接器故障中止"),
    LNC_STOP_REASON_ENUM_73(73, "车辆电池组温度过高故障中止"),
    LNC_STOP_REASON_ENUM_74(74, "车辆高压继电器故障中止"),
    LNC_STOP_REASON_ENUM_75(75, "车辆监测点 CC2 电压检测故障中止"),
    LNC_STOP_REASON_ENUM_76(76, "车辆其他故障"),
    LNC_STOP_REASON_ENUM_77(77, "车辆电流过大中止"),
    LNC_STOP_REASON_ENUM_78(78, "车辆电压异常中止"),
    LNC_STOP_REASON_ENUM_79(79, "BMS 中止 50 80 车辆预留"),
    LNC_STOP_REASON_ENUM_81(81, "车辆预留"),
    LNC_STOP_REASON_ENUM_82(82, "82 车辆预留"),
    LNC_STOP_REASON_ENUM_91(91, "终端离网中止"),
    LNC_STOP_REASON_ENUM_92(92, "平台离线中止"),
    LNC_STOP_REASON_ENUM_93(93, "充电命令超时中止"),
    LNC_STOP_REASON_ENUM_94(94, "启动超时中止"),
    LNC_STOP_REASON_ENUM_95(95, "启动放电超时中止"),
    LNC_STOP_REASON_ENUM_96(96, "异常启动中止"),
    LNC_STOP_REASON_ENUM_97(97, "显示屏操作中止"),
    LNC_STOP_REASON_ENUM_98(98, "内部 VIN 申请中止"),
    LNC_STOP_REASON_ENUM_99(99, "显示屏刷卡中止"),
    LNC_STOP_REASON_ENUM_100(100, "异常电度中止"),
    LNC_STOP_REASON_ENUM_101(101, "定金额充中止"),
    LNC_STOP_REASON_ENUM_102(102, "定电量充中止"),
    LNC_STOP_REASON_ENUM_103(103, "定时间充中止"),
    LNC_STOP_REASON_ENUM_104(104, "错峰充电中止");

    private Integer code;

    private String msg;


    /**
     * 运营后台解析
     *
     * @param code
     * @return
     */
    public static String getLncStopReasonEnumByTenant(int code) {
        Class<LncStopReasonEnum> enumClass = LncStopReasonEnum.class;
        for (LncStopReasonEnum lncStopReasonEnum : enumClass.getEnumConstants()) {
            if (code == lncStopReasonEnum.getCode()) {
                return lncStopReasonEnum.getMsg();
            }
        }
        return "LNC该停止方式未知:" + code;

    }

    LncStopReasonEnum(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

}
